In simple micromachines, the starting microaddress for each microroutine is typically generated by instruction decoding circuitry. Sometimes, subsequent microaddresses are generated by simply incrementing the current microaddress until stopped by the last microinstruction in that particular microroutine. More often, the next microaddress comprises a next microaddress field in the current microinstruction. Usually, multiplexing circuitry selects between this next microaddress and the starting microaddress(es) under control of a microaddress select field of the current microinstruction. An example of such a micromachine is shown in FIG. 5.15 on page 81 of DESIGNING LOGIC SYSTEMS USING STATE MACHINES by Christopher R. Clare (McGraw-Hill 1973).
In one form of conditional branching, such as in the micromachine shown in FIG. 5.13 on page 79 of Clare (see above), each microinstruction contains alternate next microaddress fields and the current state of one or more conditions selected by a conditional branch control field of the same microinstruction determines which is selected as the next microaddress. In another form, the next microaddress field of the current microinstruction is concatenated with the conditions selected by the conditional branch control field, as in the micromachine shown in U.S. Pat. No. 4,038,643. In still another form, the conditions are used by a PLA to generate the low order microaddress bits which are then concatenated with the base microaddress, as in the micromachine shown in U.S. Pat. No. 4,338,661. In yet another form, sequencing information is stored in a separate memory, as in the micromachine shown in U.S. Pat. No. 4,155,120.